\subsection{Why NumPy?}

I decided to use NumPy to store the game state. NumPy is a module
for Python which allows the creation of large, multi-dimensional
arrays and matrices, and includes a large library of high-level
mathematical functions to operate on these arrays. I made this
decision for several reasons.

\paragraph{Speed} is potentially very important for an application
like this, and Python, being an interpreted language, is not
particularly fast. The NumPy module is written in native \verb!C!
code and runs very quickly \cite{cai2005performance}.

\paragraph{Elegance} is made possible by closely corresponding
metaphors. A game of chess in which time is a valid dimension of
motion, translates very neatly into a 3D array of chess pieces. The
wide array of high level functions NumPy provides for handling 3D
arrays is likely to contain many direct analogues to operations one
may want to perform on a Time Chess game.

